/**场景1
 * 
 * 假定有一个数组对象A，找到符合条件的对象，找到第一个即可
 */



var users=[
    {name:"Luffy",sex:"male"},
    {name:"Namy",sex:"female"},
    {name:"Sanji",sex:"male"},
    {name:"Jopa",sex:"male"},
    {name:"Jopa",sex:"female"}//条件为name:"Jopa"||sex:"female"都搜索不到结果
];

//es5
var user='';
for(let i=0;i<users.length;i++){
    if(users[i].sex==="female"){
        user=users[i];
        break;//不加break则找到目标之后还会继续执行for循环，在一定程序上浪费了性能
    }
}
console.log(user);

//es6
var user2=users.find(function(user){
    return user.name="Jopa";
})
console.log(user2);

//添加多条件可以找到想要的具体目标
var jopaFemale=users.find(function(user){
    return user.name==="Jopa"&&user.sex==="female";
})
console.log(jopaFemale);



 /**场景2
  * 
  * 假定有一个数组对象，根据指定对象的条件找到数组中符合条件的对象
  */

  var posts=[
      {id:1,title:"Node.js"},
      {id:1,title:"React.js"}
  ];
  var comment={postId:1,comtent:"Hello World"};

  function postForComment(posts,comment){
          return posts.find(function(post){
              return post.id === comment.postId;
      })
  }
  console.log(postForComment(posts,comment));